package com.douyin.utils;

public class BaseContext {

    // 1. 创建一个 ThreadLocal 对象，用于存储 Long 类型的用户ID
    private static final ThreadLocal<Long> threadLocal = new ThreadLocal<>();

    /**
     * 2. 设置当前线程中的用户ID
     * @param id 用户ID
     */
    public static void setCurrentId(Long id) {
        threadLocal.set(id);
    }

    /**
     * 3. 获取当前线程中的用户ID
     * @return 当前登录用户的ID，如果未设置则返回 null
     */
    public static Long getCurrentId() {
        return threadLocal.get();
    }

    /**
     * 4. 清理当前线程中的用户ID
     * 这是非常重要的一步，必须在请求处理完成后调用，以防内存泄漏。
     */
    public static void removeCurrentId() {
        threadLocal.remove();
    }
}
